#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

/**
 * 实现 ls | wc -l的功能
 * @return
 */
int main(){
    int fd[2];
    int ret;
    pid_t pid;

    ret = pipe(fd);
    if (ret == -1){

        perror("pipe error");
        exit(1);

    }
    pid = fork();
    if(pid == -1){
        perror("pipe error");
        exit(1);
    }else if(pid > 0){
        close(fd[1]); //关闭写
        dup2(fd[0],STDIN_FILENO);//读重定向到标准输入
        execlp("wc","wc","-l",NULL);
        perror("pipe error");
    }else if(pid == 0){
        close(fd[0]);//关闭读
        dup2(fd[1],STDOUT_FILENO);//写重定向到标准输出
        execlp("ls","ls",NULL);
        perror("pipe error");
    }
    return 0;


}